package com.fintech.common.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.fintech.third.model.shzx.EdcZxPersonalAddrInfo;
import com.fintech.third.model.shzx.EdcZxPersonalBasicInfo;
import com.fintech.third.model.shzx.EdcZxPersonalFirstOneRelationInfo;
import com.fintech.third.model.shzx.EdcZxPersonalGuaranteeInfo;
import com.fintech.third.model.shzx.EdcZxPersonalLoanApplyInfo;
import com.fintech.third.model.shzx.EdcZxPersonalLoanOrderDetailsInfo;
import com.fintech.third.model.shzx.EdcZxPersonalLoanOrderInfo;
import com.fintech.third.model.shzx.EdcZxPersonalPromptInfo;
import com.fintech.third.model.shzx.EdcZxPersonalQueryInfo;
import com.fintech.third.model.shzx.EdcZxPersonalRecordsInfo;
import com.fintech.third.model.shzx.EdcZxPersonalSpecialOrderInfo;
import com.fintech.third.model.shzx.EdcZxPersonalSpouseInfo;
import com.fintech.third.model.shzx.EdcZxPersonalUnitInfo;

/**
 * 征信数据查询DAO
 * 
 * @title ZxDataDao
 * @author tuxu
 * @date 2018年9月21日
 */
public interface ZxDataDao {

	/**
	 * 通过身份证查询DATA_QUERY表最新limit条数据（倒序）
	 * 
	 * @param tableName
	 *            DATA_QUERY表名
	 * @param interfaceCode
	 *            接口编码
	 * @param custIdCard
	 *            证件号码
	 * @param limit
	 *            限制条数
	 * @return
	 */
	public List<Map> getQueryDataListByIdNo(@Param("tableName") String tableName,
			@Param("interfaceCode") String interfaceCode, @Param("custIdCard") String custIdCard,
			@Param("limit") int limit);

	/**
	 * 通过手机号码查询DATA_QUERY表最新limit条数据（倒序）
	 * 
	 * @param tableName
	 *            DATA_QUERY表名
	 * @param interfaceCode
	 *            接口编码
	 * @param custIdCard
	 *            证件号码
	 * @param limit
	 *            限制条数
	 * @return
	 */
	public List<Map> getQueryDataListByMobileNo(@Param("tableName") String tableName,
			@Param("interfaceCode") String interfaceCode, @Param("mobileNo") String mobileNo,
			@Param("limit") int limit);

	/**
	 * 查询魔蝎数据列表
	 * 
	 * @param loanId
	 * @return
	 */
	public List<Map> getQueryMXDataList(String loanId);

	/**
	 * 查询OCR解析数据列表
	 * 
	 * @param loanId
	 * @return
	 */
	public List<Map> getQueryRHDataList(String loanId);

	/**
	 * 查询鹏元数据列表
	 * 
	 * @param loanId
	 * @return
	 */
	public List<Map> getQueryPYDataList(String loanId);

	/**
	 * 上海资信数据列表
	 * 
	 * @param loanId
	 * @return
	 */
	public List<Map> getQuerySHZXDataList(String loanId);

	/**
	 * 百融数据列表
	 * 
	 * @param loanId
	 * @return
	 */

	public List<Map> getQueryBRDataList(String loanId);

	/**
	 * 富数数据列表
	 * 
	 * @param loanId
	 * @return
	 */
	public List<Map> getQueryFSDataList(String loanId);

	/**
	 * 前海征信
	 * 
	 * @param loanId
	 * @return
	 */
	public List<Map> getQueryQHDataList(String loanId);

	/**
	 * 汇法网列表
	 * 
	 * @param loanId
	 * @return
	 */
	public List<Map> getQueryHFDataList(String loanId);

	public List<Map> selectEdcKnCreditCardInfoByReqNo(String loanId);

	public Map selectEdcKnCreditCardInfoBy(String reqNo);

	// 上海资信征信数据
	public EdcZxPersonalBasicInfo queryEdcZxPersonalBasicInfo(String reqNo);

	public List<EdcZxPersonalAddrInfo> queryPersonalAddr(String reqNo);

	public List<EdcZxPersonalUnitInfo> queryPersonalUnitInfo(String reqNo);

	public List<EdcZxPersonalFirstOneRelationInfo> queryPersonalFirstOneRelationInfo(String reqNo);

	public EdcZxPersonalQueryInfo queryPersonalQueryInfo(String reqNo);

	public EdcZxPersonalSpouseInfo queryPersonalSpouseInfo(String reqNo);

	public List<EdcZxPersonalLoanApplyInfo> queryPersonalLoanApplyInfo(String reqNo);

	public EdcZxPersonalLoanOrderInfo queryPersonalLoanOrderInfo(String reqNo);

	public List<EdcZxPersonalLoanOrderDetailsInfo> queryPersonalLoanOrderDetailsInfo(String reqNo);

	public List<EdcZxPersonalGuaranteeInfo> queryPersonalGuaranteeInfo(String reqNo);

	public List<EdcZxPersonalSpecialOrderInfo> queryPersonalSpecialOrderInfo(String reqNo);

	public List<EdcZxPersonalRecordsInfo> queryPersonalRecordsInfo(String reqNo);

	public List<EdcZxPersonalPromptInfo> queryPersonalPromptInfo(String reqNo);

}
